Method, system, and apparatus for keystroke entry without a keyboard input device

ABSTRACT

A method, system, and apparatus for entering alpha-numeric and non-alpha numeric data without the use of a keyboard input device are provided. According to one method, a grid is displayed on a display screen that includes one or more alpha-numeric characters. Distinguishing characters are displayed adjacent to each alpha-numeric character. In response to receiving a selection within the grid, a determination is made as to whether the selected location contains an alpha-numeric character and, if so, a further determination is made as to whether a distinguishing character is present on two sides of the selected location. If a distinguishing character is present on two sides of the selected location, then the character located at the selected location is entered into a keyboard buffer as if a keyboard input device had been utilized to type the character. The grid may also include character strings corresponding to non-alphanumeric keystrokes that may be selected and entered into the keyboard buffer in a similar manner.

TECHNICAL FIELD

The present invention is related to the field of computer input devices.More particularly, the present invention is related to the field ofreceiving keystroke input in a computer system that is not equipped witha physical keyboard input device.

BACKGROUND OF THE INVENTION

Many types of computer systems utilize a basic input/output system(“BIOS”), or an extensible firmware interface (“EFI”) firmware, tocontrol various aspects of the computer system. In particular, the BIOSis utilized to perform a power on self-test, to initialize the varioushardware components within the computer system, and to provide aninterface between an operating system executing on the computer systemand the hardware. In many computer systems the BIOS also provides asetup utility program through which a user may configure various aspectsof the operation of the computer system.

BIOS setup utilities typically rely on a keyboard input device forreceiving user input. However, many types of computers are not equippedwith a keyboard input device. For instance, some server computers maynot be equipped with a keyboard. Similarly, modern pen-based computerstypically do not include a keyboard and instead rely primarily on a penand touchscreen for receiving user input. Other computers may bepurposely equipped with a mouse input device but no keyboard.

Some parameters settable within a BIOS setup utility are presented tothe user as multiple choice menu selections. Because these parametersare presented within a menu, they can easily be specified using only amouse or pen-based input device. However, some parameters within typicalBIOS setup utilities require the entry of alpha-numeric characters (e.g.A-Z, 0-9) or other types of keystrokes (an “enter” key for example). Forinstance, it may be necessary to set a password within the BIOS setuputility. Entering alpha-numeric characters without the use of a keyboardrequires a special user interface configured for this type of input.

One way that BIOS designers have enabled keystroke input in a BIOS setuputility without the use of a keyboard is through the use of a virtualon-screen keyboard. In these previous solutions, a matrix of selectablecharacters is displayed on screen. A user may then utilize a mouse orpen to select one of the keys to be entered. These types of virtualon-screen keyboards have usually been implemented utilizing a tablestored in the BIOS that defines each character in the virtual on-screenkeyboard and the coordinates of the on-screen location at which thecharacter is displayed. When input is received from the pen or mouse ata particular on-screen location, the table is consulted to determine ifa character is defined within the table at the selected on-screenlocation. If a character is defined in the table at the selectedon-screen location, the character is deemed to have been entered.

While prior art methods that utilize a character table for determininginput keystrokes perform reasonably well, the character table utilizedby these previous systems requires a considerable amount of storagespace within the typically small capacity electrically erasable andprogrammable read only memory (“EEPROM”) device utilized to store thefirmware. Moreover, the character table must be synchronized exactlywith the on-screen display. Each time the on-screen display is changed,the table must be updated to reflect the change. This can be an arduousand time consuming process for a BIOS programmer. Accordingly, there isa need for a method, system, and apparatus for receiving keystroke inputin the absence of a keyboard input device that does not utilize a tablefor storing character locations and therefore utilizes significantlyless memory than prior art methods and that does not requiresynchronization of a table with an on screen display.

It is with respect to these considerations and others that the presentinvention has been made.

SUMMARY OF THE INVENTION

In accordance with the present invention, the above and other problemsare solved by a method, system, and apparatus for enabling keystrokeentry without a keyboard input device. According to aspects of theinvention, a non-keyboard input device may be utilized to selectlocations within an on-screen grid that includes alpha-numericcharacters. A keystroke recognition process determines the characterlocated at the selected location and returns the result as if it wasgenerated by a keystroke. Because no character table is utilized,valuable BIOS memory space is saved and no synchronization is requiredbetween a character table and the on-screen display.

According to one method provided by an embodiment of the invention, agrid is displayed on a display screen that includes one or morealpha-numeric characters. Alpha-numeric characters are the charactersA-Z and 0-9 in the Latin alphabet. The grid may be constructed from textmode characters. Each alpha-numeric character in the grid is alsoflanked on two or more sides by a distinguishing character. Adistinguishing character is a character that is utilized to distinguishan alpha-numeric character from other surrounding characters. Forinstance, a blank space character may be used as a distinguishingcharacter in embodiments of the invention.

A non-keyboard input device, such as a mouse or a pen input device, maybe utilized to move a selection pointer, or cursor, to a location withinthe grid. The input device may also be utilized to select a locationwithin the grid. For instance, a mouse button may be utilized to selecta location within the grid. In response to receiving such a selection, adetermination is made as to whether the selected location contains analpha-numeric character. If the selected location contains analpha-numeric character, a further determination is made as to whether adistinguishing character is present on two sides of the selectedlocation. If a distinguishing character is present on two sides of theselected location, then the character located at the selected locationis entered into a keyboard buffer as if a keyboard input device had beenutilized to type the character.

If the selected location within the grid does not contain analpha-numeric character, a determination is made as to whether theselected location contains a distinguishing character. If the selectedlocation contains a distinguishing character, a further determination ismade as to whether a location adjacent to the selected location containsan alpha-numeric character. If a location adjacent location contains analpha-numeric character, then the character located at the adjacentlocation is entered into a keyboard buffer as if a keyboard input devicehad been utilized to type the character. In this manner, a selectionmade within each cell of the grid may be utilized to enter analpha-numeric character even if the location containing the character isnot selected precisely.

According to embodiments of the invention, the grid may also includecharacter strings corresponding to non-alphanumeric keystrokes. Forinstance, character strings may be included corresponding to the enterkey, the backspace key, an escape key, a function key, or other types ofkeys. If the selected location includes an alpha-numeric character andit is determined that a distinguishing character does not exist on bothsides of the selected location, a determination may then be made as towhether the character at the selected location is part of a recognizablecharacter string. For instance, if the alpha-numeric character at theselected location is an “E” then a determination may be made as towhether the “E” is part of the character string “ENT” corresponding tothe “enter” keystroke. If the character at the selected location is partof a recognizable character string, then the keystroke corresponding tothe recognized character string is entered into a keyboard buffer as ifthe keystroke had been typed on a keyboard. In this manner, keystrokesfor non-alphanumeric characters may be entered without the use of akeyboard input device.

The above-described aspects of the invention may also be implemented asa computer-controlled apparatus, a computer process, a computing system,an apparatus, or as an article of manufacture such as a computer programproduct or computer-readable medium. The computer program product may bea computer storage media readable by a computer system and encoding acomputer program of instructions for executing a computer process. Thecomputer program product may also be a propagated signal on a carrierreadable by a computing system and encoding a computer program ofinstructions for executing a computer process.

These and various other features as well as advantages, whichcharacterize the present invention, will be apparent from a reading ofthe following detailed description and a review of the associateddrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a computer architecture diagram showing aspects of a computerutilized as an illustrative operating environment for the variousembodiments of the invention;

FIGS. 2A-2B are screen display diagrams showing aspects of anillustrative screen display provided by embodiments of the invention forreceiving keystroke data in the absence of a keyboard input device; and

FIGS. 3-4 are flow diagrams showing various routines provided by theembodiments of the invention for enabling keystroke input without akeyboard input device according to embodiments of the invention.

DETAILED DESCRIPTION OF THE INVENTION

Embodiments of the present invention provide a method, system,apparatus, and computer-readable medium for enabling keystroke inputwithout the use of a keyboard input device. In the following detaileddescription, references are made to the accompanying drawings that forma part hereof, and in which are shown by way of illustration specificembodiments or examples. Referring now to the drawings, in which likenumerals represent like elements through the several figures, aspects ofthe present invention and the exemplary operating environment will bedescribed.

FIG. 1 and the following discussion are intended to provide a brief,general description of a suitable computing environment in which theinvention may be implemented. Generally, program modules includeroutines, programs, components, data structures, and other types ofstructures that perform particular tasks or implement particularabstract data types. Moreover, those skilled in the art will appreciatethat the invention may be practiced with other computer systemconfigurations, including hand-held devices, multiprocessor systems,microprocessor-based or programmable consumer electronics,minicomputers, mainframe computers, and the like. The invention may alsobe practiced in distributed computing environments where tasks areperformed by remote processing devices that are linked through acommunications network. In a distributed computing environment, programmodules may be located in both local and remote memory storage devices.

Referring now to FIG. 1, details regarding an illustrative operatingenvironment for embodiments of the invention will be provided. Inparticular, FIG. 1 illustrates an computer architecture for practicingthe embodiments of the present invention. It should be appreciated,however, that although the embodiments of the invention described hereinare discussed in the context of a conventional desktop, laptop, pencomputer, or server computer, the embodiments of the invention may beutilized with virtually any type of computing device.

As described briefly above, the embodiments of the invention provide amethod, system, apparatus, and computer-readable medium for enablingkeystroke input without the use of a keyboard input device. FIG. 1illustrates a computer 100 that, as will be described in greater detailbelow, enables a user to enter keystrokes utilizing a mouse, a pentablet input device, or virtually any other type of non-keyboard inputdevice. It should be appreciated that the architecture of the computer100 is merely illustrative and that any type of computer capable ofdisplaying a virtual keyboard and receiving user input from an inputdevice other than a keyboard may be utilized.

An illustrative computer architecture for practicing the variousembodiments of the invention will now be described. In particular, thecomputer 100 includes a baseboard, or “motherboard”, which is a printedcircuit board to which a multitude of components or devices may beconnected by way of a system bus or other electrical communication path.In one illustrative embodiment, a processor (“processor” or “CPU”) 102operates in conjunction with a chipset 104. The CPU 102 is a standardcentral processing unit that performs arithmetic and logical operationsnecessary for the operation of the computer 100.

The chipset 104 includes a north bridge 106 and a south bridge 108. Thenorth bridge 106 provides an interface between the CPU 102 and theremainder of the computer 100. The north bridge 106 also provides aninterface to the random access memory (“RAM”) 114 and, possibly, anon-board graphics adapter 112. The north bridge 106 may also includefunctionality for providing networking functionality through a gigabitEthernet adapter 110. The gigabit Ethernet adapter 110 is capable ofconnecting the computer 100 to another computer via a network.Connections which may be made by the network adapter 110 may includelocal area network (“LAN”) or wide area network (“WAN”) connections. LANand WAN networking environments are commonplace in offices,enterprise-wide computer networks, intranets, and the Internet. Thenorth bridge 106 is connected to the south bridge 108.

The south bridge 108 is responsible for controlling many of theinput/output functions of the computer 100. In particular, the southbridge 108 may provide one or more universal serial bus (“USB”) ports116, a sound adapter 124, an Ethernet controller 134, and one or moregeneral purpose input/output (“GPIO”) pins 122. The south bridge 108 mayalso provide a system management bus 132 for use in managing the variouscomponents of the computer 100. Power management circuitry 126 and clockgeneration circuitry 128 may also be utilized during the operation ofthe south bridge 108. The south bridge 108 may also provide a bus forinterfacing peripheral card devices such as a graphics adapter 130. Inone embodiment, the bus comprises a peripheral component interconnect(“PCI”) bus. The PCI bus may also be utilized to interface with one ormore HBAs, such as the serial ATA HBA 131.

According to embodiments, the south bridge 108 is an enhanced southbridge operative to provide a HBA for connecting mass storage devices tothe computer 100 without the use of an add-in card such as the PCI HBA131. For instance, according to an embodiment, the south bridge 108includes a serial advanced technology attachment (“ATA”) adapter forproviding one or more serial ATA ports 120 and an ATA 100 adapter forproviding one or more ATA 100 ports 122. The serial ATA ports 120 andthe ATA 100 ports 122 may be, in turn, connected directly to one or moremass storage devices storing an operating system and applicationprograms. As known to those skilled in the art, an operating systemcomprises a set of programs that control operations of a computer andallocation of resources. An application program is software that runs ontop of the operating system software and uses computer resources madeavailable through the operating system to perform application specifictasks desired by the user.

The mass storage devices connected to the south bridge 108, and itsassociated computer-readable media, provide non-volatile storage for thecomputer 100. Although the description of computer-readable mediacontained herein refers to a mass storage device, such as a hard disk orCD-ROM drive, it should be appreciated by those skilled in the art thatcomputer-readable media can be any available media that can be accessedby the computer 100. By way of example, and not limitation,computer-readable media may comprise computer storage media andcommunication media. Computer storage media includes volatile andnon-volatile, removable and non-removable media implemented in anymethod or technology for storage of information such ascomputer-readable instructions, data structures, program modules orother data. Computer storage media includes, but is not limited to, RAM,ROM, EPROM, EEPROM, flash memory or other solid state memory technology,CD-ROM, DVD, or other optical storage, magnetic cassettes, magnetictape, magnetic disk storage or other magnetic storage devices, or anyother medium which can be used to store the desired information andwhich can be accessed by the computer.

A low pin count (“LPC”) interface may also be provided by the southbridge 108 for connecting a “Super I/O” device 138. The Super I/O device138 is responsible for providing a number of input/output ports,including a keyboard port, a mouse port, a serial interface, a parallelport, a touch screen input, and other types of input/output ports. TheLPC interface may also connect a read-only memory (“ROM”) device forstoring a basic input/output system (“BIOS”) 136 or an extensiblefirmware interface (“EFI”) compatible firmware that includes programcode containing the basic routines that help to start up the computer100 and to transfer information between elements within the computer100. It should be appreciated that the computer 100 may comprise othertypes of computing devices, including hand-held computers, embeddedcomputer systems, personal digital assistants, and other types ofcomputing devices known to those skilled in the art. It is alsocontemplated that the computer 100 may not include all of the componentsshown in FIG. 1, may include other components that are not explicitlyshown in FIG. 1, or may utilize an architecture completely differentthan that shown in FIG. 1.

According to embodiments of the invention, the BIOS 136 is operative toprovide a setup utility program through which a user may configurevarious aspects of the operation of the computer 100. In particular, thesetup utility provided by the BIOS 136 allows the user to set variousparameters that control the operation of the computer 100. In order toset these parameters, a user may utilize a keyboard input deviceconnected to the Super I/O device 138. According to embodiments of theinvention, a user may also utilize a mouse, pen-based, or touch screeninput device to enter keystrokes in the setup utility provided by theBIOS 136 in the absence of a connected keyboard. It should beappreciated that although the embodiments of the invention are describedin the context of entering keystrokes in a BIOS-provided setup utility,the embodiments of the invention may be utilized to enable keystrokeentry without a keyboard in virtually any type of application program oroperating system program.

According to embodiments of the invention, the BIOS 136 utilizes a textmode provided by the on-board graphics adapter 112 or the graphicsadapter 130 to display the user interface for the setup utility. Theuser interface may be displayed on a display device, such as a videomonitor, connected to either of the adapters 112 or 130. The user mayinteract with the setup utility to select various menus, options, and tomake various selections utilizing the mouse or pen-based input deviceconnected to the Super I/O device 138. From time to time, it may benecessary for a user to enter keystrokes into the setup utility providedby the BIOS 136. For instance, in order to specify a password, it may benecessary to enter alpha-numeric characters. Similarly, it may also benecessary to enter non-alphanumeric characters to navigate the variousmenus provided by the setup utility and to perform other functions. Forinstance, it may be frequently necessary to enter an “escape” characteror an “enter character.” An illustrative user interface provided in oneembodiment of the invention for entering alpha-numeric andnon-alphanumeric keystrokes in this manner is described below withreference to FIGS. 2A-2B.

Turning now to FIG. 2A, additional details regarding a user interfaceprovided by embodiments of the invention for enabling the entry ofkeystrokes without a keyboard will be described. In particular, FIG. 2Ashows an illustrative screen display 200. The screen display 200 isgenerated by the setup utility executing within the BIOS 136. The screendisplay 200 includes a grid 204 for entering keystrokes without the useof a keyboard. In particular, the grid 204 is made up of cells206A-206N, also referred to herein as rectangles.

Some of the cells 206A-206N in the grid 200 include an alpha-numericcharacter. For instance, the cell 206A includes the character “A.” Otherof the cells 206A-206N include a character string that corresponds to anon-alphanumeric character. For instance, the cell 206K includes thecharacter string “ESC” that corresponds to an “escape” keystroke. Othercells may be included with character strings corresponding to an enterkey (“ENT”), a backspace key (“BS”), or a function key. It should beappreciated that the grid 204 may be displayed when it becomes necessaryfor a user to enter keystrokes when no keyboard is connected to thecomputer 100.

As also shown in FIG. 2A, the setup utility within the BIOS 136 may beoperative to display a text entry box 202 for receiving keyboard inputfrom a user. According to embodiments, a non-keyboard input device andthe grid 204 may be utilized to enter keystrokes into the text entry box202. In particular, a non-keyboard input device may be utilized to movea cursor 208 to various positions within the grid 204. A selection maybe made of the various positions and, in response to such a selection, aselected alpha-numeric character or non-alphanumeric character may beentered into a keyboard buffer of the Super I/O device 138. In thismanner, it appears to the computer 100 that a keystroke was actuallytyped on a connected keyboard even though no keyboard is actuallyphysically connected to the computer 100. Additional details regardingthis process are provided below with respect to FIGS. 2B-4.

Referring now to FIG. 2B, additional details regarding the grid 204utilized in the embodiments of the invention will be described. As shownin FIG. 2B, each cell within the grid 204 is formed from a number oftext characters. For instance, the cell 206A shown in FIG. 2B is formedfrom characters located at positions 210A-210Q. In particular, textcharacters suitable for creating a grid structure are located atpositions 210A-210E, 210F, 210K, and 210L-210Q. The alpha-numericcharacter “A” is located at position 210H.

The positions 210G and 210J of the cell 206A include a distinguishingcharacter. A distinguishing character is a character utilized todistinguish an alpha-numeric character from other surroundingcharacters. In this manner, each alpha-numeric character in the grid 204is flanked on both sides by a distinguishing character. According toembodiments, the distinguishing character may be a blank space characteras illustrated in FIG. 2B. Other suitable characters may be alsoutilized as distinguishing characters. The distinguishing characters mayalso be placed above and below the alpha-numeric character or on allsides of the alpha-numeric character. It should be appreciated that theother cells 206B-206N of the grid 204 may be formed in a similar way tothe cell 206A shown in FIG. 2B.

Referring now to FIG. 3, additional details regarding the operation ofthe computer 100 for enabling keystroke input without the use of akeyboard input device will be provided. In particular, a routine 300will be described illustrating operations performed by BIOS 136 forstoring the character located at a current position of a cursor andrestoring the character when the cursor is moved. It should beappreciated that the logical operations of the various embodiments ofthe present invention are implemented (1) as a sequence of computerimplemented acts or program modules running on a computing system and/or(2) as interconnected machine logic circuits or circuit modules withinthe computing system. The implementation is a matter of choice dependenton the performance requirements of the computing system implementing theinvention. Accordingly, the logical operations of FIGS. 3 and 4 andmaking up the embodiments of the present invention described herein arereferred to variously as operations, structural devices, acts ormodules. It will be recognized by one skilled in the art that theseoperations, structural devices, acts and modules may be implemented insoftware, in firmware, in special purpose digital logic, and anycombination thereof without deviating from the spirit and scope of thepresent invention as recited within the claims attached hereto.

It should be appreciated that when the cursor 208 is moved over thevarious locations within the grid 204, the characters over which thecursor is moved must be saved so that they can later be restored to thedisplay when the cursor moves away. This process is performed by theBIOS 136 so that the display of the cursor 208 will not overwritecharacters shown on the display screen as it is moved. The result of theperformance of this process is that the character that was previouslylocated at the current position of the cursor 208 is available forexamination. This data is utilized by the embodiments of the inventionto determine the character that is “under” the cursor when a selectionis received on the input device, such as a mouse click or a pen tap.Additional details regarding a process for moving the mouse cursor andsaving and restoring character information is provided below.

The routine 300 begins at operations 302 and 304, where a determinationis made as to whether the non-keyboard input device, such as a pen ormouse, has been moved. If no movement has been detected, the routine 300branches from operation 304 back to operation 302, where another suchdetermination is made. If movement has been detected, the routine 300continues from operation 304 to operation 306.

At operation 306, a previously saved character is restored to thecurrent location of the cursor. In this manner, the character isrestored that was displayed at the location of the cursor before thecursor moved to that location. The routine 300 then continues tooperation 308, where the character located at the new destination forthe cursor is saved to memory. The routine 300 then continues fromoperation 308 to operation 310 where the cursor 208 is moved from itscurrent location to the new location in response to the movement. Theroutine 300 then continues from operation 310 back to operation 302where another determination is made as to whether the cursor 208 hasbeen moved. It should be appreciated that the routine 300 causes thecharacter located at the current location of the cursor 208 to beavailable. This information is utilized to determine whether a key hasbeen selected in the grid 204 for entry. Additional details regardingthis process are provided below with respect to FIG. 4.

Turning now to FIG. 4, an illustrative routine 400 will be described forenabling keystroke entry without the use of a keyboard input deviceaccording to one embodiment of the invention. The routine 400 begins atoperation 402, where a request is received to enter keystrokes with anon-keyboard input device. This may occur, for instance, if it isnecessary for a user to provide a password or other text data in a textinput box 202 without the use of a keyboard. In response to such arequest, the grid 204 is displayed by the BIOS 136 at operation 404.From operation 404, the routine 400 continues to operation 406.

At operation 406, the BIOS 136 determines whether the cursor 208 iswithin the bounds of the grid 204. If the cursor 208 is not within thebounds of the grid 204, the routine 400 branches back to operation 406where another such determination is made. If the cursor 208 is withinthe grid 204, the routine 400 continues to operation 408 where aselection is received from the input device, such as a mouse click, apen tap, or other equivalent selection mechanism. In response to such aselection, the routine 400 continues to operation 410, where adetermination is made as to whether the character previously located atthe current location of the cursor 208 (and saved as set forth abovewith respect to FIG. 3), is an alpha-numeric character.

If, at operation 410, it is determined that the character is analpha-numeric character, the routine 400 branches to operation 412,where a determination is made as to whether the positions adjacent tothe selected location contain a distinguishing character. If adistinguishing character is present at these locations, the routine 400branches from operation 412 to operation 418, where the characterlocated at the current location of the cursor is entered into thekeyboard buffer provided by the Super I/O device 138 so that thekeystroke appears to the computer 100 to have been entered by anattached keyboard.

If, at operation 412, it is determined that distinguishing charactersare not present adjacent to the selected location within the grid 204,the routine 400 continues from operation 412 to operation 420. Atoperation 420, an attempt is made to recognize a string that includesthe character at the selected location. The contents of adjacentlocations may be considered when attempting to recognize a string. Forinstance, using the example shown in FIG. 2A, if the selected locationis the position of the “S” in cell 206K, the string recognitionalgorithm may examine characters to the left of the selected locationand to the right of the selected location in order to determine that theselected location is a part of a recognizable string. By performing thisprocess, the BIOS 136 would recognize that the string comprising “ESC”had been selected.

At operation 422, a determination is made as to whether a string hasbeen recognized. If a string has not been recognized, no valid selectionhas been made and the routine 400 returns to operation 406, describedabove. If a string is recognized, the routine 400 continues to operation422 where the keystroke corresponding to the recognized string is placedin the keyboard buffer so that the keystroke appears to the computer 100to have been typed on a keyboard. As an example, if the “ESC” stringcontained in cell 206K is recognized as having been selected, the ASCIIcode corresponding to the “escape” character will be placed in thekeyboard buffer. In this manner, keystrokes corresponding tonon-alphanumeric characters may be entered without the use of akeyboard.

If, at operation 410, it is determined that the character at theselected location is not an alpha-numeric character, the routine 400continues from operation 410 to operation 414. At operation 414, adetermination is made as to whether the character at the selectedlocation is a distinguishing character. If the character at the selectedlocation is not a distinguishing character, the routine 400 branchesfrom operation 414 back to operation 406. If the character at theselected location is a distinguishing character, the routine 400continues from operation 414 to operation 416.

At operation 416, a determination is made as to whether an alpha-numericcharacter exists at a location adjacent to the selected location. If analpha-numeric character does not exist adjacent to the selectedlocation, the routine 400 branches from operation 416 to operation 406.If an alpha-numeric character does exist at a location adjacent to theselected location, then the adjacent character is placed into thekeyboard buffer at operation 418. In this manner the selection of adistinguishing character will cause the character located in the samecell to be entered. From operation 418, the routine 400 returns tooperation 406, where the above-described process is repeated.

It will be appreciated that embodiments of the present invention providea method, system, and apparatus for enabling keystroke input without theuse of a keyboard input device. Although the invention has beendescribed in language specific to computer structural features,methodological acts, and computer readable media, it is to be understoodthat the invention defined in the appended claims is not necessarilylimited to the specific structures, acts or media described. Therefore,the specific structural features, acts and mediums are disclosed asexemplary embodiments implementing the claimed invention.

The various embodiments described above are provided by way ofillustration only and should not be construed to limit the invention.Those skilled in the art will readily recognize various modificationsand changes that may be made to the present invention without followingthe example embodiments and applications illustrated and describedherein, and without departing from the true spirit and scope of thepresent invention, which is set forth in the following claims.

1. A computer-implemented method for receiving alpha-numeric input inthe absence of a keyboard input device, the method comprising: utilizinga text mode of a graphics adaptor of a computer to display a grid on adisplay screen, the grid comprising a plurality of text characterswherein each of the plurality of text characters comprises one of analpha-numeric character type, a distinguishing character type, and agrid structure character type, and wherein a text character of adistinguishing character type is displayed horizontally adjacent to eachtext character of an alpha-numeric character type in the grid;determining whether input was received selecting a location within thegrid; determining a type of the text character displayed at the selectedlocation; in response to determining that the type of the text characterdisplayed at the selected location comprises the alpha-numeric charactertype, entering the text character comprising the alpha-numeric charactertype into a keyboard buffer such that the text character comprising thealpha-numeric character type appears to have been typed on a keyboard;in response to determining that the type of the text charactersdisplayed at the selected location and one or more adjacent locationsdoes not comprise the alpha-numeric character type, determining whetherthe type of the text character displayed at the selected locationcomprises the distinguishing character type; in response to determiningthat the type of the text character displayed at the selected locationcomprises the distinguishing character type, determining whether a textcharacter of the alpha-numeric character type is displayed adjacent tothe selected location; and in response to determining that a textcharacter of the alpha-numeric character type is displayed adjacent tothe selected location, entering the text character of the alpha-numericcharacter type displayed adjacent to the selected location into akeyboard buffer such that the text character of the alpha-numericcharacter type appears to have been typed on a keyboard.
 2. The methodof claim 1, wherein the alpha-numeric characters displayed in the gridcomprise each of the letters A-Z and the numbers 0-9.
 3. The method ofclaim 1, wherein the text character of the distinguishing character typecomprises a blank space.
 4. The method of claim 3, further comprising:in response to determining that the type of the text character displayedat the selected location comprises the alpha-numeric character type;determining whether text characters of the distinguishing character typeare displayed immediately to the left and right of the selectedlocation; in response to determining that text characters of thedistinguishing character type are not displayed immediately to the leftand right of the selected location, determining whether the textcharacter displayed at the selected location is part of a recognizablestring of characters; and in response to determining that the textcharacter displayed at the selected location is part of a recognizablestring, entering a character corresponding to the string into thekeyboard buffer such that the entered character appears to have beentyped on a keyboard.
 5. The method of claim 4, wherein a selection ismade using only a mouse or pen input device.
 6. A computer-readablemedium having computer-readable instructions stored thereon which, whenexecuted, cause a computer to perform the method of claim
 1. 7. Acomputer-controlled apparatus capable of performing the method ofclaim
 1. 8. A computer-implemented method for receiving alpha-numericdata entry at a computer without the use of a keyboard input device, themethod comprising: utilizing a text mode of a graphics adaptor of thecomputer to display a grid comprising a plurality of text characters,each of the plurality of text characters comprising one of analpha-numeric character type, a distinguishing character type, and agrid structure character type; receiving a selection from a non-keyboardinput device at a location within the grid; in response to receiving theselection, determining a type of the text character displayed at theselected location within the grid; in response to determining that thetype of the text character displayed at the selected location within thegrid comprises the alpha-numeric character type, determining whether thetype of the text characters displayed in the locations horizontallyadjacent to the selected location comprises the distinguishing charactertype; in response to determining that the type of the text charactersdisplayed in the locations horizontally adjacent to the selectedlocation comprises the distinguishing character type, entering the textcharacter displayed at the selected location into a keyboard buffer asif a keyboard had been utilized to type the character; in response todetermining that the type of the text characters displayed in thelocations horizontally adjacent to the selected location does notcomprise the distinguishing character type, determining whether the textcharacter displayed at the selected location is part of a recognizablestring of characters corresponding to a non-alphanumeric keystroke; inresponse to determining that the text character displayed at theselected location is part of a recognizable string, entering thecorresponding non-alphanumeric keystroke into the keyboard buffer suchthat the keystroke appears to have been typed on a keyboard; in responseto determining that the type of the text character displayed at theselected location comprises the distinguishing character type,determining whether a text character of the alpha-numeric character typeis displayed adjacent to the selected location; and in response todetermining that a text character of the alpha-numeric character type isdisplayed adjacent to the selected location, entering the text characterof the alpha-numeric character type that is displayed adjacent to theselected location into a keyboard buffer as if a keyboard had beenutilized to type the character.
 9. A computer-readable storage mediumhaving computer executable instructions stored thereon that, whenexecuted by a computer, cause the computer to: display on a displaydevice operably connected to the computer a grid comprising a pluralityof text characters, each of the plurality of text characters comprisingone of an alpha-numeric character type, a distinguishing character type,and a grid structure character type; determine whether a non-keyboardinput device operably connected to the computer has moved; in responseto determining that the non-keyboard device has moved, move a textcharacter from a memory buffer to a current location of a cursor on thedisplay device; move the text character from a new location of thecursor corresponding to the movement of the non-keyboard input device tothe memory buffer; move the cursor from the current location to the newlocation; receive a selection of the new location within the grid fromthe non-keyboard input device; in response to receiving the selection,determine the type of the text character in the memory buffer; inresponse to determining that the type of the text character in thememory buffer comprises the alpha-numeric character type, determinewhether the type of the text characters displayed in the locationshorizontally adjacent to the selected location within the grid comprisesthe distinguishing character type; in response to determining that thetype of the text characters displayed in the locations horizontallyadjacent to the selected location comprises the distinguishing charactertype, enter the text character in the memory buffer into a keyboardbuffer of the computer as if a keyboard had been utilized to type thecharacter; in response to determining that the type of the textcharacter in the memory buffer comprises the distinguishing charactertype, determine whether a text character of the alpha-numeric charactertype is displayed adjacent to the selected location within the grid; andin response to determining that a text character of the alpha-numericcharacter type is displayed adjacent to the selected location, enter thetext character of the alpha-numeric character type into the keyboardbuffer as if a keyboard had been utilized to type the character.
 10. Thecomputer-readable storage medium of claim 9, having further computerexecutable instructions stored thereon that, when executed by acomputer, cause the computer to: in response to determining that thetype of the text characters displayed in the locations horizontallyadjacent to the selected location does not comprise the distinguishingcharacter type, determine whether the text character in the memorybuffer is part of a recognizable string of characters corresponding to anon-alphanumeric keystroke; and in response to determining that the textcharacter in the memory buffer is part of a recognizable string, enterthe corresponding non-alphanumeric keystroke into the keyboard buffersuch that the keystroke appears to have been typed on a keyboard. 11.The computer-readable storage medium of claim 10, wherein thenon-alphanumeric keystroke comprises one of an enter keystroke, abackspace keystroke, and escape keystroke, or a function keystroke. 12.The computer-readable storage medium of claim 9, wherein thenon-keyboard input device comprises one of a mouse or a pen inputdevice.
 13. The computer-readable storage medium of claim 9, wherein thetext character of the distinguishing character type comprises a blankspace.